package com.yfqy.app.modules.order.dto;

import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import java.util.List;

/**
 * 订单创建请求
 */
@Data
public class OrderCreateRequest {
    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 订单类型(1-普通，2-满减，3-折扣，4-特价，5-拼团)
     */
    @NotNull(message = "订单类型不能为空")
    @Range(min = 1, max = 5, message = "订单类型不合法：1-普通，2-满减，3-折扣，4-特价，5-拼团")
    private Byte orderType;

    /**
     * 订单商品项列表
     */
    @NotEmpty(message = "商品不能为空")
    private List<OrderItemRequest> items;

    /**
     * 积分
     */
    private Integer integral;

    /**
     * 收货地址ID
     */
    @NotNull(message = "收货地址不能为空")
    private Long addressId;

    /**
     * 订单备注
     */
    private String remark;

    /**
     * 订单金额
     */
    private OrderAmountDTO orderAmountDTO;

    /**
     * 是否使用积分
     */
    private boolean usePoints;
    /**
     * 使用多少积分
     */
    private Integer requiredPoints;

    /**
     * 促销活动ID
     */
    private Long promotionId;

    /**
     * true预览订单，false创建订单
     */
    private boolean isPreview = true;

}
